﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Scriptor.Presentation
{
    public partial class frmCrudData : Form
    {
        public string Modulo { get; set; }
        public string SubModulo { get; set; }
        public string Entidade { get; set; }
        public string EntidadePlural { get; set; }
        public bool Enviado { get; set; }

        public frmCrudData()
        {
            InitializeComponent();
            this.Enviado = false;
        }

        private void btnLimpar_Click(object sender, EventArgs e)
        {
            txtModulo.Text = string.Empty;
            txtSubModulo.Text = string.Empty;
            txtEntidade.Text = string.Empty;
            txtEntidadePlural.Text = string.Empty;

            this.lblModuleError.Visible = false;
            this.lblSubModuleError.Visible = false;
            this.lblEntityError.Visible = false;
            this.lblEntitiesError.Visible = false;
        }

        public string NomeModulo 
        {
            set { txtModulo.Text = value; }
        }

        public string NomeSubModulo
        {
            set { txtSubModulo.Text = value; }
        }

        private void btnCancelar_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnCarregar_Click(object sender, EventArgs e)
        {
            List<Label> lista = new List<Label>();

            this.lblModuleError.Visible = string.IsNullOrEmpty(txtModulo.Text);
            this.lblSubModuleError.Visible = string.IsNullOrEmpty(txtSubModulo.Text);
            this.lblEntityError.Visible = string.IsNullOrEmpty(txtEntidade.Text);
            this.lblEntitiesError.Visible = string.IsNullOrEmpty(txtEntidadePlural.Text);

            lista.Add(lblModuleError);
            lista.Add(lblSubModuleError);
            lista.Add(lblEntityError);
            lista.Add(lblEntitiesError);

            bool HasEmpty = false;

            lista.ForEach(delegate(Label lbl) 
            {
                if (lbl.Visible)
                    HasEmpty = true;
            }
            );

            if (!HasEmpty)
            {
                this.Modulo = txtModulo.Text;
                this.SubModulo = txtSubModulo.Text;
                this.Entidade = txtEntidade.Text;
                this.EntidadePlural = txtEntidadePlural.Text;
                this.Enviado = true;

                this.Close();
            }

        }

        private void txtEntidade_TextChanged(object sender, EventArgs e)
        {
            txtEntidadePlural.Text = (sender as TextBox).Text;
        }
    }
}
